package com.pro.mapper;

import com.pro.pojo.JsUserCoupon;
import com.pro.pojo.JsUserCouponUsed;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * ClassName:JsUserCouponMapper
 * Package:com.pro.mapper
 * Description: 优惠券mapper
 *
 * @Date:2022/1/10 下午 3:33
 * @Author: WYH
 */
public interface JsUserCouponMapper {

    /**
     * @author WYH
     * @date 2022/1/10 下午 3:47
     * @content :   查询微圈列表中数据
     */
    List<JsUserCoupon> getAllCoupon(
            @Param("couponName") String couponName,
            @Param("online") String online,
            @Param("grant") String grant,
            @Param("startDate") String startDate,
            @Param("endDate") String endDate,
            @Param("limit") Integer limit,
            @Param("page") Integer page);

    /**
     * @author WYH
     * @date 2022/1/10 下午 3:47
     * @content : 计算中条数
     */
    Integer count();

    /**
     * @author WYH
     * @date 2022/1/10 下午 4:44
     * @content : 修改上线状态
     */
    Boolean updateCoupon(Integer couponId, Integer online, Integer updateId, Date updateDate);

    /**
     * @author WYH
     * @date 2022/1/11 下午 3:39
     * @content : 删除优惠券
     */
    Boolean delCoupon(@Param("couponId") Integer couponId);

    /**
     * @author WYH
     * @date 2022/1/11 下午 3:52
     * @content : 查询优惠券详情
     */
    JsUserCoupon seeCoupon(@Param("couponId") Integer couponId);

    /**
     * @Author WYH
     * @Description //TODO 添加优惠券
     * @Date 下午 8:14 2022/1/12
     * @Param  jsUserCoupon
     * @return  true | false
     **/
    Boolean addCoupon(JsUserCoupon jsUserCoupon);

    /**
     * @Author WYH
     * @Description //TODO 查看用户优惠券
     * @Date 上午 9:46 2022/1/13
     * @Param limit，page
     * @return List<JsUserCoupon>
     **/
    List<JsUserCoupon> getAllUserCoupon(@Param("account") String account,@Param("nickname") String nickname,@Param("limit") Integer limit, @Param("page") Integer page);

    /**
     * @Author WYH
     * @Description //TODO 计算用户优惠券个数
     * @Date 上午 9:46 2022/1/13
     * @Param
     * @return Integer
     **/
    Integer userCount(@Param("account") String account,@Param("nickname") String nickname);

    /**
     * @Author WYH
     * @Description //TODO 赠送优惠券中的查询优惠券
     * @Date 下午 7:28 2022/1/13
     * @Param couponName,limit,page
     * @return List<JsUserCoupon>
     **/
    List<JsUserCoupon> getCouponGive(@Param("couponName") String couponName, @Param("limit") Integer limit, @Param("page") Integer page);

    /**
     * @Author WYH
     * @Description //TODO 计算赠送优惠券中的查询优惠券个数
     * @Date 下午 7:33 2022/1/13
     * @Param couponName
     * @return  Integer
     **/
    Integer GiveCount(@Param("couponName") String couponName);
    
    /**
     * @Author WYH
     * @Description //TODO 为用户添加一个或多个优惠券
     * @Date 下午 8:26 2022/1/13
     * @Param List<JsUserCouponUsed>
     * @return  true | false
     **/
    Boolean addGiveCoupon(List<JsUserCouponUsed> jsUserCouponUsed);
}
